import axios from 'axios'; 
import Vue from 'vue';
//引入element-ui 组件
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

// 创建axios实例  
const service = axios.create({  
  baseURL: 'https://ai.vrprism.com', // 设置基础URL  
  timeout: 60000 // 设置请求超时时间  
});  
  
// 设置请求拦截  
service.interceptors.request.use(function (config) {  
  // 在发送请求之前做些什么  
  // 例如，可以在这里添加请求头  
  // config.headers.Authorization = 'Bearer ' + localStorage.getItem('token');
  config.headers = {
	  'X-Requested-With':'XMLHttpRequest',
	  // 'token':'34390701-1061-4a6e-a95c-b56183228866'
  }
  return config;  
}, function (error) {  
  // 对请求错误做些什么  
  return Promise.reject(error);  
});  
  
// 设置响应拦截  

service.interceptors.response.use(function (response) {  
	
  // 对响应数据做点什么  
  // 例如，可以检查响应状态码  
  if (response.status === 200) { 
	let ss = response?.data?.data
    if( ss && Object.keys(response.data.data)[0] == 'need_login'){
    	const userAgent = navigator.userAgent || navigator.vendor || window.opera;
    	// 检查是否是移动设备  
    	if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) {  
			/* 手机端登录页  路径自行配置一下 */
    	    window.open(localStorage.getItem('AI_LOGIN_URL') + '?url=' +  encodeURIComponent("https://ai.vrprism.com/h5/"), '_self'); // 在当前窗口或标签页中打开
    	}else{
			/* 电脑端登录页  路径自行配置一下 */
    		window.open(localStorage.getItem('AI_WEIXIN_URL')  + '?url=' +  encodeURIComponent("https://ai.vrprism.com/h5/"), '_self'); // 在当前窗口或标签页中打开
    	}  
		
    }
	if(response.data.code == 0){
		Vue.prototype.$message.error(response.data.msg);
	}
	
	
  } else if (response.status === 401) {  
    console.log('未授权');  
  } else if (response.status === 404) {  
    console.log('未找到');  
  } else {  
    console.log('其他错误');  
  }  
  return response;  
}, function (error) {  
  // 对响应错误做点什么  
  
  return Promise.reject(error);  
});  
  
// 封装request请求  
function request(api, options = {}) {  
  return service({  
    url: api,  
    method: options.method || 'get',  
    data: options.body || null,  
    params: options.params || null,  
  }).then(response => {  
    return response.data;  
  }).catch(error => {  
    console.error(error);  
    throw error;  
  });  
}  
  
export default request;